#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(int argc, char const *argv[])
{
    printf("main进程%d开始执行\n", getpid());

    pid_t pid = fork();
    if (pid == 0) // 子进程
    {
        printf("子进程：%d \n", getpid());
        // 通过execev 执行other程序
        char *path = "//bin/ping";
        char *argv[] = {path, "-c", "10", "www.baidu.com", NULL};
        char *envp[] = {NULL};                 // 系统默认的环境变量
        int result = execve(path, argv, envp); // 如果目标程序正确执行，则不会返回，否则返回-1
        printf("execve执行失败\n");
    }
    else // 父进程
    {
        printf("父进程：%d\n", getpid());
        int result;
        waitpid(pid, &result, 0);
        printf("子进程结束执行，结果为：%d\n", result);
    }
    printf("main进程%d结束执行\n", getpid());
    return 0;
}
